Many computing environments comprise a large and diverse set of objects managed by a set of object systems. For example, a computing environment may comprise a set of files managed by a file system, one or more databases managed by a database system, a set of executable binaries representing applications and managed by an assembly cache, a set of user profiles managed by a user profile component of an operating system, and various data caches managed by data caching components, such as a set of copied items managed by a copy buffer of the operating system, a set of undo actions managed by an undo component of the operating system, and a set of “most recently used” items managed by an item usage tracking component of the operating system. Moreover, such objects may be exchanged among a plurality of devices operated by one or more users, and according to one or more operations (e.g., an object synchronization operation that merges two object sets and an object mirroring operation that adjusts a target object set to match a source object set.) In this manner, the objects are loosely organized through a set of object systems and aggregated to represent the computing environment.
The applications available within contemporary computing environments are typically devised and presented to the user according to many contexts. A locally deployed application typically operates on a local device and often utilizes one or more application programming interfaces for functions such as graphics rendering, memory access, window management, and network communication with remote resources. A server-side web application typically operates on a remote resource, such as a remote webserver, and communicates with a user of a local device through a client interface, such as a web browser. A client-side web-deployed application is typically stored as a set of resources on a remote server, sent to a local device upon request, and executed on the device. Such client-side web-deployed applications may run within a web browser, or may be configured to run as a locally deployed application; for instance, a Java or XAML application may be sent to a device, locally compiled or interpreted, and executed similarly to other locally deployed applications. Some applications have features of multiple contexts; for instance, an email service suite may have a server-side portion that receives mail and filters spam, and may offer users a choice between a locally deployed email application and a webmail interface to the mailbox that operates in a browser. Thus, a typical computing environment often manifests as an aggregation of applications presented according to various contexts, each of which may have a particular set of conventions. For instance, an application state of a web application may be bookmarkable, while a locally deployed application may not offer such functionality; and a locally deployed application may have greater access to local resources, such as a local file system, than a web application constrained by browser- and network-based security processes.